import java.util.Arrays;

//class MyArray<T>{
//    //private Object[] array = new Object[10];
//    private T[] array = (T[])new Object[10];
//
//
//    public T get(int pos){
//        return (T)array[pos];
//    }
//
//    public void set(int pos, T val){
//        array[pos] = val;
//    }
//
//    public Object[] getArray(){
//        return array;
//    }

//    public T[] getArray(){
//        return array;
//    }

//}

//class MyArr<T extends String>{
//
//}

class MyFun<T extends Comparable<T>>{
    public T findMax(T[] arr){
        T ans = arr[0];
        for(int i =0; i < arr.length; i++){
            if(arr[i].compareTo(ans) > 0){
                ans = arr[i];
            }
        }
        return ans;
    }
}

public class Generic {
    public static void main(String[] args) {
        Integer[] integers = new Integer[]{1,2,3,4,5};
        MyFun<Integer> fun = new MyFun<>();
        System.out.println(fun.findMax(integers));
    }
//    public static void main(String[] args) {
//        MyArr<String> stringMyArr = new MyArr<>();
//    }

//    public static void main(String[] args) {
//        MyArray<String> arr = new MyArray<>();
//        String[] s = arr.getArray();
//    }
}
